//本题使用完全背包解法

#include<iostream>
using namespace std;
long long t , n , m , dp[10001] , all[10001][10001] , num , l , r;

int main(){
    cin >> t >> n >> m;
    for(int i = 1 ; i <= t ; i ++){
        for(int j = 1 ; j <= n ; j ++){
            cin >> all[i][j];			//输入
        }
    }
    for(int i = 2 ; i <= t ; i ++){				//循环从2开始，因为第一天不能卖。
        for(int j = 0 ; j <= m ; j ++){
            dp[j] = j;
        }
        num = 0;
        for(int j = 1 ; j <= n ; j ++){
            l = all[i - 1][j];
            r = all[i][j];
            for(int k = l ; k <= m ; k ++){
                dp[k] = max(dp[k] , dp[k - l] + r);           //状态转移
                num = max(num , dp[k]);
            }
        }
        m = num;
    }
    cout << m;			//输出结果
    return 0;
}